#ifndef __MENU_H_
#define __MENU_H_

#include<list>
#include<string>
using namespace std;

class Menu
{
	list<string> m_options_text;
	void displayOptions();

public:
	//c'tor
	Menu(int which_menu, bool withHiding = true)
	{
		switch(which_menu)
		{
		case 1:
			m_options_text.push_back("Add shape");
			if(withHiding)
				m_options_text.push_back("Draw (with hiding)");
			else
				m_options_text.push_back("Draw (with cuts)");
			if(withHiding)
				m_options_text.push_back("Change default drawing option to Draw With Cuts");
			else
				m_options_text.push_back("Change default drawing option to Draw With Hiding");
			m_options_text.push_back("Choose a Shape");
			m_options_text.push_back("Show Animation With Screen Transfer");
			m_options_text.push_back("Show Animation With Collisions");
			m_options_text.push_back("Exit");
			break;
		case 2:
			m_options_text.push_back("Cancel Selection");
			m_options_text.push_back("Delete Shape");
			m_options_text.push_back("Bring To Front");
			m_options_text.push_back("Move To Back");
			m_options_text.push_back("Shift the Shape");
			m_options_text.push_back("Add Animation");
			break;
		case 3:
			m_options_text.push_back("Add Rectangle");
			m_options_text.push_back("Add Circle");
			break;
		}
	}
	unsigned int getExitOptionNum( ) { return m_options_text.size(); }
	unsigned int choose();
	void changeOption(int option_num, const string &option_text);
	bool isEmpty(){return m_options_text.size() == 0;}
};


#endif